import pandas
import pandas as pd
from openpyxl.reader.excel import load_workbook

from common.handleExcel import save_to_excel, move_column, merge_same_column, read_countycode_2countyname_city, \
    read_excel_to_dataframe, slice_colum_from_dataframe, format_datecolumn
from common.part1GetList import get_list
from common.statisticsUtil import sum_by_column, size_by_column


def get_base_list(url):
    url = fr"{url}"

    # 获取Excel文件第三个sheet表数据--行政区代码前六位---实际管理区----设区市
    # 361130    婺源县    上饶市
    countyNum2countyName2CityTable = read_countycode_2countyname_city(url, 2)

    # 已处置清单表
    baseListTable = read_excel_to_dataframe(rf'{url}', sheet_name=5)

    # 提取电子监管号的前6位生成新列--行政区代码前六位--并挪动到第一列
    baseListTable = slice_colum_from_dataframe(baseListTable,
                                                  '电子监管号',
                                                  6,
                                                  '行政区代码前六位')
    print('提取电子监管号的前6位生成新列--行政区代码前六位--并挪动到第一列')
    print(baseListTable)

    # 合并两个表
    merged_table = pd.merge(baseListTable, countyNum2countyName2CityTable, on='行政区代码前六位', how='left')
    merged_table = move_column(merged_table, '实际管理区')
    merged_table = move_column(merged_table, '设区市')

    # 格式化日期列
    merged_table = format_datecolumn(merged_table,
                                     ['约定（变更）动工时间', '实际动工时间', '实际竣工时间'])
    print(merged_table)

    #保存数据到Excel文件最后一个sheet上（新增的sheet）
    save_to_excel(merged_table, url)
    return merged_table


def get_handled_list(url):
    url = fr"{url}"

    # 获取Excel文件第三个sheet表数据--行政区代码前六位---实际管理区----设区市
    # 361130    婺源县    上饶市
    countyNum2countyName2CityTable = read_countycode_2countyname_city(url, 2)



    # 已处置清单表
    handledListTable = read_excel_to_dataframe(rf'{url}', sheet_name=4)

    # 提取电子监管号的前6位生成新列--行政区代码前六位--并挪动到第一列
    handledListTable = slice_colum_from_dataframe(handledListTable,
                                                  '电子监管号',
                                                  6,
                                                  '行政区代码前六位')
    print('提取电子监管号的前6位生成新列--行政区代码前六位--并挪动到第一列')
    print(handledListTable)

    # 合并两个表
    merged_table = pd.merge(handledListTable, countyNum2countyName2CityTable, on='行政区代码前六位', how='left')
    merged_table = move_column(merged_table, '实际管理区')
    merged_table = move_column(merged_table, '设区市')

    # 格式化日期列
    merged_table = format_datecolumn(merged_table, ['约定（变更）动工时间', '实际动工时间','实际竣工时间', '实际竣工时间'])
    print(merged_table)

    # 保存数据到Excel文件最后一个sheet上（新增的sheet）
    save_to_excel(merged_table, url)
    return merged_table

def get_newadd_inyear_list(url):
    url = fr"{url}"

    # 获取Excel文件第三个sheet表数据--行政区代码前六位---实际管理区----设区市
    # 361130    婺源县    上饶市
    countyNum2countyName2CityTable = read_countycode_2countyname_city(url,2)


    # 年内新增清单
    newYearListTable = read_excel_to_dataframe(rf'{url}', sheet_name=3)

    # 提取电子监管号的前6位生成新列--行政区代码前六位--并挪动到第一列
    newYearListTable = slice_colum_from_dataframe(newYearListTable,
                                                  '电子监管号',
                                                  6,
                                                  '行政区代码前六位')
    print('提取电子监管号的前6位生成新列--行政区代码前六位--并挪动到第一列')
    print(newYearListTable)

    # 合并两个表
    merged_table = pd.merge(newYearListTable, countyNum2countyName2CityTable, on='行政区代码前六位', how='left')
    merged_table = move_column(merged_table, '实际管理区')
    merged_table = move_column(merged_table, '设区市')

    # 格式化日期列
    merged_table = format_datecolumn(merged_table, ['签订日期','约定动工时间','闲置产生时间','闲置处置时间'])
    print(merged_table)

    #保存数据到Excel文件最后一个sheet上（新增的sheet）
    save_to_excel(merged_table, url)
    return merged_table



if __name__ == '__main__':
    url = r'E:\资料\省自然资源厅\1.example.xlsx'
    baseListTable = get_list(url,2,
                             url,3)
    # 格式化日期列
    baseListTable = format_datecolumn(baseListTable,
                                     ['约定（变更）动工时间', '实际动工时间', '实际竣工时间'])


    # print(merged_table)
    print('baseListTable')
    print(baseListTable)
    handledListTable = get_list(url, 2,
                                url, 4)
    # 格式化日期列
    handledListTable = format_datecolumn(handledListTable,
                                      ['约定（变更）动工时间', '实际动工时间','实际竣工时间', '实际竣工时间'])
    print('handledListTable')
    print(handledListTable)


    newYearListTable = get_list(url, 2,
                                url, 5)
    # 格式化日期列
    newYearListTable = format_datecolumn(newYearListTable,
                                         ['签订日期','约定动工时间','闲置产生时间','闲置处置时间'])
    print('newYearListTable')
    print(newYearListTable)
    # resultTable = get_base_list(url)
    # print(resultTable)

    # resultTable = get_handled_list(url)
    # print(resultTable)

    # resultTable = get_newadd_inyear_list(url)
    # result1 = sum_by_column(resultTable, ['设区市', '实际管理区'], '供应面积')
    # result2 = size_by_column(resultTable, ['设区市', '实际管理区'])
    # result3 = pd.merge(result1, result2, on=['设区市', '实际管理区'], how='outer')
    # result3.sort_values(['设区市', '实际管理区'])
    # print(result3)
    # save_sheet_name = save_to_excel(result3, url)
    # print(save_sheet_name)
    # merge_same_column(url, save_sheet_name)
